import os
from openai import OpenAI  # QWen3 兼容 OpenAI SDK
from app.config import config


async def embed(documents, dimensions: int = 1024):
    client = OpenAI(
        api_key=config.get("llm_aliyuncs", "api_key"),
        base_url=config.get("llm_aliyuncs", "base_url"),
    )

    completion = client.embeddings.create(
        model=config.get("embedding_model_aliyuncs", "model"),

        # 输入文本，可以是字符串，字符串列表， 或者打开的文件（需要Embedding的内容，一行一条）。
        # 作为字符串时最长支持 2,048 Token，v3/v4最长支持 8,192 Token。
        # 作为字符串列表时最多支持 25 条，每条最长支持 2,048 Token；v3/v4最多支持 10 条，每条最长支持 8,192 Token。
        input=documents,

        # 指定向量维度（仅 text-embedding-v3及 text-embedding-v4支持该参数）
        # v4 支持 2,048、1,536、1,024（默认）、768、512、256、128、64
        # 例如，如果 dimensions=64，则每个文本将被映射为一个包含 64 个浮点数的向量。
        dimensions=dimensions,

        # 用于控制返回的Embedding格式，当前仅支持float格式。
        encoding_format="float"
    )

    return completion
